/**
 * 
 */
package com.tomagency.cyberlab.shared.rpc;

import java.util.List;


import com.google.web.bindery.requestfactory.shared.*;
import com.tomagency.cyberlab.server.request.*;

import de.gammadata.business.modelle.BelegDO;
import de.gammadata.gwt.modelle.ResultObject;
import de.gammadata.gwt.proxy.*;


/**
 * @author gfr
 *
 */
public interface GammalibRequestFactory extends RequestFactory {
	
//	@Service(value = BelegServiceImpl.class, locator = InjectingServiceLocator.class)
	@Service(value = BelegRequestService.class, locator = CyberlabServiceLocator.class)
	public  interface BelegRequest extends RequestContext{
		
		Request<List<BelegListProxy>> findAllBelege(int start, int limit);
		Request<List<BelegListProxy>> findByMatchString(String suchTxt);
		Request<Long> countAllBelege();
		Request<BelegListProxy> findBeleg(Integer id);
		Request<BelegViewProxy> findBelegExt(Integer id);
		Request<BelegViewProxy> setBelegStatusNeu(Integer id, String status);
	}
	
	@Service(value = KontaktRequestService.class, locator = CyberlabServiceLocator.class)
	public interface KontaktRequest extends RequestContext{
		
		Request<List<KontaktListProxy>> findAll(int start, int limit);
		Request<List<KontaktListProxy>> findByMatchString(String suchTxt);
		Request<Long> countAll();
		Request<KontaktListProxy> find(Integer id);
		Request<KontaktListProxy> findFull(Integer id);
		
	}
	
	@Service(value = MessageRequestService.class, locator = CyberlabServiceLocator.class)
	public interface MessageRequest extends RequestContext{
		
		Request<List<MessageListProxy>> findAll(int start, int limit);
		Request<List<MessageListProxy>> findByMatchString(String suchTxt);
		Request<Long> countAll();
		Request<MessageListProxy> find(Integer id);
		Request<MessageListProxy> findFull(Integer id);
		
	}
	
	
	public BelegRequest belegRequest();
	public KontaktRequest kontaktRequest();
	public MessageRequest messageRequest();

}
